using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Common;
using Microsoft.TeamFoundation.WorkItemTracking;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using Microsoft.TeamFoundation.Controls;
using C1.Win.C1FlexGrid;

namespace Hemi
{
    public class HemiContextSingleton
    {
        static HemiContextSingleton _instance = null;

        WorkItemMoveInfoList _workItemsToMove;
        TeamFoundationServer _tfs;
        WorkItemStore _workItemStore;
        Object _stateContext;

        private HemiContextSingleton()
        {
            _workItemsToMove = new WorkItemMoveInfoList();
        }

        public static HemiContextSingleton Instance
        {
            get
            {
                if (_instance == null)
                {
                    _instance = new HemiContextSingleton();
                }

                return _instance;
            }
        }

        public WorkItemStore WorkItemStore
        {
            get { return _workItemStore; }
            set { _workItemStore = value; }
        }

        public TeamFoundationServer TeamFoundationServer
        {
            get { return _tfs; }
            set 
            { 
                _tfs = value;
            }
        }

        public WorkItemMoveInfoList WorkItemsToMove
        {
            get { return _workItemsToMove; }
            set { _workItemsToMove = value; }
        }

        public Object StateContext
        {
            get { return _stateContext; }
            set { _stateContext = value; }
        }
    }
}
